07 - 偏好对齐
SFT 之后的模型会对话了,但「会对话」和「答得好」是两回事。这一篇讲怎么让模型学会在多个都通顺的回答里挑更好的那个,产出 dpo.py。
前置:06 篇跑完的 SFT checkpoint。
零、开始之前:SFT 之后还缺什么
0.1 SFT 的天花板在哪
SFT 干的事是模仿:给一堆「问题 → 标准回答」,让模型学着照做。
这套办法有个天生的上限。模仿只能让模型逼近训练数据的水平,没法超过它。 而且模仿是无差别的,训练数据里写得好的和写得一般的,模型一视同仁地学。
更关键的是,SFT 只告诉模型「什么是对的」,从来没告诉它「什么是不好的」。模型不知道哪些回答该避免。
0.2 一个具体的例子
同一个问题,两个都通顺的回答 :
问:帮我写一封请假邮件
回答 A:
好的,这是一封请假邮件:
尊敬的领导,我因身体不适需请假一天,望批准。此致敬礼。
回答 B:
好的,这是一封请假邮件:
主题:请假申请(3 月 5 日)
尊敬的张经理:
我因感冒发热需于 3 月 5 日请假一天,期间工作已交接给李明,
紧急事项可电话联系我。给您带来不便,敬请谅解。
王强
2026 年 3 月 4 日
两个都没错,语法都通,都是「请假邮件」。但 B 明显更好。
SFT 没法表达这种差别——它的数据里只有一个标准答案,没有「这两个之中 B 更好」这种信息。
偏好对齐要做的就是把这种比较信息喂给模型。